package com.bw.service;

import com.bw.entity.User;
import com.bw.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    /**
     * 代理对象  可以增强原对象的功能
     * 增强 原对象方法的功能
     * 在原方法的执行前后追加业务逻辑
     */
    public void test(){

        System.out.println("----");
        System.out.println("----");
        System.out.println("----");
    }


    /**
     * @param amount  转账金额
     * @param userIdA 转账人
     * @param userIdB 收款人
     * @return
     *
     */
//    @Transactional
    @Override
    public Boolean transforAmount(Integer amount, Integer userIdA, Integer userIdB) {
            // before   开启了一个事务
            //1. 扣减 A 的钱
            userMapper.updateAmountById(userIdA, amount);
            // 1.5   模拟一个异常 ，给A 发送短信 ，记录交易流水。。。。
            int i = 1/0;
            //2. 给B 加钱
            userMapper.updateAmountById(userIdB, -amount);

            // after   提交事务 （如果有异常 回滚事务）

        return true;
    }

    @Override
    public User selectByName(String name) {


        return userMapper.selectByName(name);
    }
}
